iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0
佛心分享-IT 人自學之術

後端小白自學 Laravel系列 第 1

第 1 天:Laravel 簡介與環境配置

  • 分享至 

  • xImage
  •  

Laravel 的歷史與特性


Laravel 是一個功能強大且易於使用的 PHP 框架,他的出現提高後端開發效率並簡化常見的網頁開發任務;這個套件提供了優雅的語法、強大的 ORM、靈活的路由系統,以及其他多種有用的工具,使得網頁應用程序的開發過程更加高效和愉快。

創始人
Laravel 由 Taylor Otwell 於 2011 年創建。

版本演變
Laravel 自推出以來經歷了多次重大版本更新,不斷引入新特性和改進,例如 Laravel 5.x 引入了許多現代功能,Laravel 6.x 開始支持 LTS(長期支持)版本;這次紀錄是 PHP 8.1 搭配 Laravel 9.x

安裝Laravel(使用Composer)


因為公司專案需求是 PHP 8.1 搭配 Laravel 9.x,所以以下流程都是依照這個執行,如果有升級需求,只需要在安裝的時候,先到官網的 support policy 查看對應 PHP 版本即可!
Laravel 官網文件提到的對應 PHP 版本

安裝 PHP 8.1

  1. 先開啟一個資料夾準備練習用,ex. kuku

  2. 啟動終端機,確認本機的 php 版本,如果沒有,就要先安裝 php,語法:php -v

  3. 下載安裝 php
    3.1 mac:brew 安裝下載後,下指令 brew install php@8.1
    3.2 window:
    step1 -> 進入官網,點選下載
    下載 PHP 8.1 檔案
    step2 -> 解壓縮後重新命名資料夾(php-8.3.8),並且開啟資料夾找到 php.ini-development 改成 php.ini
    變更檔案名稱
    step3 -> 打開 php.ini,確認自己的環境,因為 DB 連線需要,搜尋 "extension" ,找到 extension=pdo_sqlite 刪除前面的 ";",再依照不同的環境變更設定檔案以下訊息。

    ☆ Window
    搜索 "extension_dir" -> extension_dir = "ext",並且刪除前面的 ";"
    ☆ Linux
    搜索 "extension_dir" -> extension_dir = "./",並且刪除前面的 ";"

    step4 -> 建立環境變數:設定 > 關於 > 進階系統設定 > 環境變數> Path
    建立環境變數1
    建立環境變數2

安裝 Composer

  1. 進入官網找到安裝指令
    指令
  2. 進入根目錄 bash/zsh 語法 cd ~,並且下官網的指令
  3. 畫面出現一段文字請輸入密碼 sudo mv composer.phar /usr/local/bin/composer,輸入後就會開始安裝 composer

Composer 安裝指定 Laravel 版本

  1. 進入一開始設定的 kuku 資料夾,bash/zsh 語法:cd kuku

  2. 因為是安裝 Laravel 9.x 版本,所以跟原來官網寫的會有些許不同,可以參考 Composer 安装指定 Laravel 版本,下官網指令 composer create-project laravel/laravel:^9.0 example-app

    🐘 補充說明:

    • 上面提到的指令其中 example 要改成自己的專案名稱,例如我的練習專案名稱是 kuku,所以我要下的指令就是 composer create-project laravel/laravel:^9.0 kuku-app
    • 我不確定是不是每間公司定義不同,但是我聽到的是後端沒有所謂的小駝峰,主要是用烤肉串表示,例如:php-elephant,後來陪伴我成長的指導者告訴我其實沒有一定,去翻閱很多 gitHub 作品也不一定,就依照各公司規定
  3. 在 kuku 的資料夾下可以看到有一個新增的 kuku-app 資料夾,下指令指向新增的資料夾 cd kuku-app

  4. 建立專案後,開一個新的終端機使用下指令 php artisan serve 啟動本機開發伺服器

  5. 接著可以收到一段訊息 INFO Server running on [http://127.0.0.1:8000],點擊鏈接可以看到成功安裝 laravel 的網頁畫面

    🐘 補充說明:
    http://127.0.0.1:8000,其中 http://127.0.0.1 → 本機的 IP;8000 → port

配置開發環境 (PHP,MySQL)
後端需要與資料庫串接,所以 database 資料夾主要放置資料庫內容,可以藉由以下指令執行未執行過的資料表搬遷語法(也可以順道檢查確認有沒有與資料庫串接)

php artisan migrate

如果出現提醒文字 WARN The SQLite database does not exist: laravel. 同時問要不要建立一個新的資料庫,回答 yes

  1. database.php 中建立一個簡單的資料庫

    // config > database.php
    
    'sqlite' => [
              'driver' => 'sqlite',
              'url' => env('DATABASE_URL'),
              'database' => env('DB_DATABASE', database_path('database.sqlite')),
              'prefix' => '',
              'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
          ],
    
  2. 同時去 .env 把 DB_CONNECTION 修改成新的 sqlite

  3. 在資料夾中找到剛剛建立的資料庫,理論上會建在 檔案名稱/database/migrations,但是也可能在最外層的 檔案名稱/laravel

Laravel 目錄結構


目錄結構
app/:存放主要應用邏輯,如控制器、模型、服務提供者。
config/:配置文件。
database/:數據庫遷移和種子數據。
public/:公共資源,如 CSS、JavaScript 文件和圖片。
resources/:視圖文件和本地化文件。
routes/:路由定義文件。
storage/:儲存文件(如日誌、上傳文件等)。
tests/:測試文件。
vendor/:Composer 安裝的第三方包。

Laravel 安裝過程出現的問題分享


感謝之前閱讀過文章的夥伴和身邊跟著學習的人反饋問題,以下是比較大宗的問題反饋,希望有遇到的夥伴可以看看能不能解決

Illuminate\Foundation\Application‘ not found

參考文章:Fatal error: Class 'Illuminate\Foundation\Application' not found

收到反饋說:下指令 php artisan serve 後遇到這個問題!
我們當下是把終端機反饋的字段複製到 google 查詢,當時試過很多方法,卻沒發現最重要的東西...資料夾結構!!!
後來看到文章才去一一比對發現少了 vendor/ (Composer 安裝的第三方包)資料夾,為什麼會發生說真的不清楚,但是看到有前輩分享是 composer 版本問題,但是他也真的按照我給的步驟執行,我可以他不行,所以真因不可考,只能說請下以下指令讓他回歸正常!

composer create-project --prefer-dist laravel/laravel blog

版本問題為什麼不用安裝指令就好?其實一開始有用過 composer install,但是他就是不裝呀!所以直接下大絕,結束這回合!

Illuminate\Database\QueryException
資料庫建立失敗

參考文章:Windows: How to install or activate SQLite3 for PHP

這裡我很抱歉!我本來寫在第二天,但是發現這樣會讓很多人的安裝資料庫過程報錯!
會出現這個錯誤是發生在下指令 php artisan migrate,這是環境的問題,因為我是學習中所以暫時使用 sqlite,所以 .env 設定是

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306

接著一定要去 php.ini,確認 extension=pdo_sqlite 還有 "extension_dir" -> extension_dir = "ext" 前面的 ";" 要刪除,之後重新下指令 php artisan migrate
建立資料庫

開啟database出現二進位制異常
解決方法:開啟延伸模組安裝套件即可。
身為後端要學習修改資料庫內容,所以後來我選擇安裝 editor ,如果只有 viewer 就不能修改了。
sqlite
打開 database 資料夾,找到 database.sqlite 點選兩下就可以看到表格畫面了!
資料表


下一篇
第 2 天:Laravel 啟服務與請求的生命週期
系列文
後端小白自學 Laravel21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言